package Day9.homework;

/*
* 父类的静态代码块（仅在类加载时执行一次，且仅执行一次，与对象创建无关）
子类的静态代码块（同样在类加载时执行一次）
父类的构造代码块（在每次创建父类对象时执行）
父类的构造函数（在每次创建父类对象时执行）
子类的构造代码块（在每次创建子类对象时执行）
子类的构造函数（在每次创建子类对象时执行
* */

public class demo_3 {
    public static void main(String[] args) {
        System.out.println("创建父类对象");
        Parent parent = new Parent();

        System.out.println("\n创建子类对象");
        Child child = new Child();
    }
}
class Parent {
    static {
        System.out.println("父类静态代码块");
    }

    {
        System.out.println("父类构造代码块");
    }

    public Parent() {
        System.out.println("父类构造函数");
    }
}

class Child extends Parent {
    static {
        System.out.println("子类静态代码块");
    }

    {
        System.out.println("子类构造代码块");
    }

    public Child() {
        System.out.println("子类构造函数");
    }
}